/******************************************************************************
 * Copyright (C) 2013 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.util;

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.SQLException;

/**
 * Blob操作的工具类
 * <pre>
 * 提供对Blob的操作封装，如：
 * {@link #writeInBlob(InputStream, Blob)}:将一个流写入blob
 * </pre>
 * 
 * @author 陈星凌
 * @since TOP4.0
 * @version 2013-1-30 陈星凌 由原TOP系统迁移
 */
public final class BlobUtil {

	/**
	 * 构造函数
	 */
	private BlobUtil() {
	}

	/**
	 * 将一个流写入blob
	 * 
	 * @param inputStream
	 *            InputStream
	 * @param blob
	 *            Blob
	 * @throws SQLException
	 *             SQLException
	 * @throws IOException
	 *             IOException
	 */
	public static void writeInBlob(InputStream inputStream, Blob blob)
			throws SQLException, IOException {
		// 获取blob的写入流
		BufferedOutputStream objOutput = new BufferedOutputStream(
				blob.setBinaryStream(0));
		byte[] byteBuff = new byte[2048];
		int iBytesRead;
		while ((iBytesRead = inputStream.read(byteBuff, 0, byteBuff.length)) != -1) {
			objOutput.write(byteBuff, 0, iBytesRead);
		}
		inputStream.close();
		objOutput.flush();
		objOutput.close();
	}

}